// anche le funzioni costruttore possono ricevere parametri
// esattamente come le altre funzioni 

#include <iostream>
using namespace std;

class condivisione {
static int a;
int b;
public:
void imposta(int i,int j)
{
a=i;
b=j;
}
void mostra();
};


int condivisione::a; // definisce a ovvero alloca memoria definizione globale

void condivisione::mostra()
{
cout <<"variabile statica a = "<<a<<endl;
cout <<"variabile non statica b = "<<b<<endl;
}

int main()
{
  condivisione x,y;

	x.imposta(1,1); // assegna 1 alla variabile a
	x.mostra();
	y.imposta(2,2); // assegna 2 alla variabile a
	y.mostra();
  	x.mostra(); 
  return 0;
}

// variabile statica a:1
// variabile non statica b:1
// variabile statica a:2
// variabile non statica b:2
// variabile statica a:2
// variabile non statica b:1